# 模块：functools

# https://fishc.com.cn/thread-209319-1-1.html

# functools.reduce(function, iterable[, initializer])
import functools


def add(x, y):
    return x + y


print(functools.reduce(add, [1, 2, 3, 4, 5]))  # 15

# 相当于下面的写法

print(add(add(add(add(1, 2), 3), 4), 5))  # 15

# 10的阶乘
print(functools.reduce(lambda x, y: x * y, range(1, 11)))  # 3628800
